<!doctype html><html><head>
    <title>Canvas drawImage example 1</title>
    <meta name="DC.creator" content="Kamiel Martinet, http://www.martinet.nl/">
    <meta name="DC.publisher" content="Mozilla Developer Center, http://developer.mozilla.org">

<script src="../canvas.vml.js"></script>
<script src="../canvas.js"></script>

<script>
function oncanvasready() {
    draw(document.getElementById('vmlcanvas'));
}
function matrix() {
    draw(document.getElementById('vmlcanvas'), 1);
}
function draw(canvas, matrix){
    if (!canvas.getContext){ return; }

    var ctx = canvas.getContext('2d');

    if (matrix) {
        ctx.clear();
        ctx.translate(-10, 5);
        ctx.scale(1.2, 0.8);
        ctx.rotate(5 * Math.PI / 180);
    }
    var img = new Image();
    img.onload = function(){
        ctx.scale(1, 0.3);
        ctx.translate(20, 20);
        ctx.rotate(3 * Math.PI / 180);
        ctx.beginPath();
        ctx.arc(80, 100, 80, 0, Math.PI * 2, 1);
    //    ctx.rect(100, 100, 100, 100);
        ctx.clip();
        ctx.strokeStyle = "red";
        ctx.lineWidth = 3;
        ctx.drawImage(img, 0, 0);
        ctx.stroke();
    }
    img.src = 'img/rhino.jpg?' + new Date().getTime();
}
</script>
    <style type="text/css">
      body { margin: 20px; font-family: arial,verdana,helvetica; background: #fff;}
      h1 { font-size: 140%; font-weight:normal; color: #036; border-bottom: 1px solid #ccc; }
      h2 { font-size: 100%; color: #036; }
      canvas { float: left; margin-right: 20px; margin-bottom: 20px; }
      pre { float:left; display:block; background: rgb(238,238,238); border: 1px dashed #666; padding: 15px 20px; margin: 0 0 10px 0; }
    </style>
  </head>
  <body>
    <h1>Canvas <code>drawImage</code> example 1</h1>
    <div>
      <input type="button" value="matrix effect" onclick="matrix()" />
      <br />
      <canvas id="vmlcanvas" class="vml" width="150" height="150"></canvas>
      <pre>
function oncanvasready() {
    draw(document.getElementById('vmlcanvas'));
}
function matrix() {
    draw(document.getElementById('vmlcanvas'), 1);
}
function draw(canvas, matrix){
    if (!canvas.getContext){ return; }

    var ctx = canvas.getContext('2d');

    if (matrix) {
        ctx.clear();
        ctx.translate(-10, 5);
        ctx.scale(1.2, 0.8);
        ctx.rotate(5 * Math.PI / 180);
    }
    var img = new Image();
    img.onload = function(){
        ctx.scale(1, 0.3);
        ctx.translate(20, 20);
        ctx.rotate(3 * Math.PI / 180);
        ctx.beginPath();
        ctx.arc(80, 100, 80, 0, Math.PI * 2, 1);
    //    ctx.rect(100, 100, 100, 100);
        ctx.clip();
        ctx.strokeStyle = "red";
        ctx.lineWidth = 3;
        ctx.drawImage(img, 0, 0);
        ctx.stroke();
    }
    img.src = 'img/rhino.jpg?' + new Date().getTime();
}
      </pre>
      <div style="float:left;">
        <h2>Source image</h2>
        <img src="img/rhino.jpg"/>
      </div>
    </div>
  </body>
</html>
